A typical conventional instant messaging (IM) system operates between two or more computer systems coupled to a computer network to allow users of such computers to quickly exchange messages such as text messages in a reliable and efficient manner. Typical examples of conventional instant messaging systems include “AOL instant messenger”, “MSN Messenger”, “Lotus Sametime” and the like. Each of these conventional systems has a number of characteristics that they share in common with each other.
Generally, such conventional instant messaging systems provide a set of real-time computer client messaging applications (i.e., software programs) that enable a group of computer users to send messages between each other (i.e., between the client computers) as long as the client computers that operate such client messaging applications are all connected in some fashion or another to a computer network such as the Internet. Such messaging client applications can operate on a wide variety of computing platforms, including personal computers, workstations, cell-phones and personal digital assistants (PDAs), laptop computers, and the like. Such client-based IM software applications may comprise one or more applets (e.g., downloadable messaging Java programs), downloadable executable messaging programs (e.g., messaging executables), browser plug-ins, or other such applications that a user of a client computer system downloads and installs and/or otherwise obtains and installs onto his or her client computer system in order to enable his or her client computer to partake in messaging exchange with other client computer systems. The other client computer systems also must download a similar and compatible messaging client application in order for the messaging system to properly function.
Conventional messaging client software applications typically use a specialized messaging protocol for exchange of instant messages between one client and an messaging server operating within an messaging service provider facility. Upon receipt of an instant message from one client, the messaging server software can use a similar proprietary protocol to forward the instant message to the recipient client's messaging software in a real-time or near-real-time manner such that the recipient client receives and can then respond to the instant message with a return instant message.
As a specific example, when a first user enters a text message into his or her messaging client application and selects a “send” function to have this instant message transmitted to another user's (i.e., a second user's) messaging client application (i.e., operating on that other user's client computer system), the first user's client application creates a connection, such as a TCP/IP connection, to an messaging server. The first user's messaging client application uses this connection to transmit the instant message entered by the first user to the messaging server and then closes the connection to the messaging server. Upon receipt of an instant message in this manner, the messaging server determines which recipient computer system is to receive the instant message and then establishes a connection to that the messaging client application operating on that second users (i.e., the recipient's) computer. The messaging server then transmits the instant message over the connection to the second users messaging client application and closes the connection. In this manner, conventional messaging client software applications interact with messaging server software that relays instant messages between clients over respective connections to give the perception to those clients of an messaging “conversation” which takes place between users.